<?php

/**
 * UserIdentity represents the data needed to identity a user.
 * It contains the authentication method that checks if the provided
 * data can identity the user.
 */
class UserIdentity extends CUserIdentity
{
	private $_id;

        public function authenticate()
        {
            $username = strtolower($this->username);
            $user = Login::model()->find('LOWER(login)=?', array($username));
            
            if($user === null)
                $this->errorCode = self::ERROR_USERNAME_INVALID;
            else if(!$user->validatePassword($this->password))
                $this->errorCode = self::ERROR_PASSWORD_INVALID;
            else
            {
                $this->_id = $user->id;
                $this->username = $user->login;
                $this->errorCode = self::ERROR_NONE;
            }
            return $this->errorCode==self::ERROR_NONE;
        }

        public function getId()
        {
            return $this->_id;
        }
        
        private function Access()
        {
            $auth = Yii::app()->authManager;
            
            $bizRule='return Yii::app()->user->isGuest;';
            $quest = $auth->createRole('quest', $bizRule);
            
            $bizRule='return !Yii::app()->user->isGuest;';
            $user = $auth->createRole('user', $bizRule);
            
            $admin = $auth->createRole('admin', 1);
            
            $auth->save();
        }
}
